package com.wzy.java;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

public class TestObj {

    public static void main(String[] args) {
        List<Users> list1 = new ArrayList<>();
        Users users = new Users();
        users.setName("pzm");
        users.setMonth1(1);
        users.setMonth2(2);
        users.setMonth3(3);
        users.setMonth4(4);
        users.setMonth5(5);
        users.setMonth6(6);
        users.setMonth7(7);
        users.setMonth8(8);
        users.setMonth9(9);
        users.setMonth10(10);
        users.setMonth11(11);
        users.setMonth12(122);

        Users users1 = new Users();
        users1.setName("wzy");
        users1.setMonth1(1);
        users1.setMonth2(2);
        users1.setMonth3(3);
        users1.setMonth4(4);
        users1.setMonth5(5);
        users1.setMonth6(6);
        users1.setMonth7(7);
        users1.setMonth8(8);
        users1.setMonth9(9);
        users1.setMonth10(10);
        users1.setMonth11(11);
        users1.setMonth12(12);

        list1.add(users);
        list1.add(users1);

        Users users20 = list1.stream().filter(o -> o.getMonth1() == o.getMonth1()).findAny().orElse(null);
        System.out.println(users20);
        System.out.println("========================");


        List<User> list = new ArrayList<>();

        for (Users users2 : list1) {
            for (int i = 1; i <= 12; i++) {
                String name = "month" + i;
                String values = getValues(name, users2);
//                System.out.println(name + ":" + values);
                User user = new User();
                user.setId(users2.getId());
                user.setName(users2.getName());
                user.setMonth(Integer.parseInt(values));
                list.add(user);
            }
        }
        list.forEach(item->{
            System.out.println(item);
        });
    }

    public static String getValues(String language, Object obj) {
        Object returnStr = null;
        Field languageFiled;
        try {
            languageFiled = obj.getClass().getDeclaredField(language);
            languageFiled.setAccessible(true);
            returnStr = languageFiled.get(obj);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return returnStr == null ? "" : returnStr.toString();
    }
}